﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Dados;
using System.ComponentModel;

namespace Negocios
{
    [DataObject]
    public class FormatoBLL
    {
        [DataObjectMethodAttribute(DataObjectMethodType.Insert, true)]
        public bool Insere(Formato f)
        {
            
            try
            {
                return FormatoDAL.Insere(f.Nome, f.Tipo);
            }
            catch (Exception ex)
            {
                throw new Exception("Erro ao insereir Formato " + f.Nome);
            }
        }
        [DataObjectMethodAttribute(DataObjectMethodType.Update, true)]
        public bool Atualiza(Formato f)
        {
            try
            {
                return FormatoDAL.Atualiza(f.Nome, f.Tipo, f.Codigo);
            }
            catch (Exception ex)
            {
                throw new Exception("Erro ao atualizar Formato " + f.Nome);
            }
        }
        [DataObjectMethodAttribute(DataObjectMethodType.Delete, true)]
        public bool Remove(Formato f)
        {
            try
            {
                return FormatoDAL.Remove(f.Codigo);
            }
            catch (Exception ex)
            {
                throw new Exception("Erro ao deletar Formato " + f.Nome);
            }
        }
        [DataObjectMethodAttribute(DataObjectMethodType.Select, false)]
        public Formato Consulta(int codigo)
        {
            DSMPTUDO.T_FORMATODataTable formatoDT = FormatoDAL.ConsultaPorCodigo(codigo);
            if (formatoDT.Count == 1)
            return (new Formato(codigo, formatoDT[0].tx_nome, formatoDT[0].nr_tipo));
            else return null;
        }
        [DataObjectMethodAttribute(DataObjectMethodType.Select, true)]
        public static List<Formato> ConsultaTodos()
        {
            List<Formato> lista = new List<Formato>();
            DSMPTUDO.T_FORMATODataTable formatoDT2 = FormatoDAL.ConsultaTodos();
            for (int i=0; i<formatoDT2.Count; i++){
                Formato e = new Formato(formatoDT2[i].nr_codigo, formatoDT2[i].tx_nome, formatoDT2[i].nr_tipo);
                lista.Add(e);
            }
            return lista;
         }
    }
}
